package com.gxd.business.bind.aop;


import com.gxd.business.bind.enums.BindType;

import java.lang.annotation.Documented;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;

import static java.lang.annotation.ElementType.FIELD;
import static java.lang.annotation.RetentionPolicy.RUNTIME;

/**
 * 数据绑定注解
 */
@Documented
@Retention(RUNTIME)
@Target(FIELD)
public @interface FieldBind {

	/**
	 * 类型
	 */
	BindType type() default BindType.DICT_WEBAPP;

	/**
	 * 目标key
	 */
	String key() default "";

	/**
	 * 目标待绑定属性
	 */
	String[] target() default {};

	Class<?> sourceClass() default Object.class;

	/**
	 * 是否使用 自定义类型（默认false 不使用 自定义）
	 */
	boolean customType() default false;

	/**
	 * 只对 单个绑定 生效！！！
	 * 是否 优先使用 翻译的空值（默认true 使用 翻译的空值 ）（false 时 翻译的空值 不给予绑定 ）
	 */
	boolean bindEmpty() default true; //prioritizeBindEmpty

}
